package com.bwstudio.common.response;

import lombok.AllArgsConstructor;

/**
 * @Description: 实现了IResultCode接口的基础响应枚举类，提供了3个最基本的响应结果
 * @Author: Bu Wei
 * @Date: 2020年3月13日 上午10:30:30
 */
@AllArgsConstructor
public enum BasicResponseCodeEnum implements IResponseCode {

	/**
	 * 成功返回的状态码, 根据阿里java开发手册泰山版的错误码原则，正常返回000000
	 */
	SUCCESS("00000", "success"),
	/**
	 * 前端传入参数不合法,
	 * 根据阿里java开发手册泰山版的错误码原则
	 * 属于错误来源于用户，前缀用A
	 *
	 */
	PARAMETER_ILLEGAL("A0400", "非法参数"),
	/**
	 * 资源不存在的状态码
	 * 根据阿里java开发手册泰山版的错误码原则
	 * 属于错误来源于用户，前缀用A
	 */
	RESOURCE_NOT_EXIST("A0401", "资源不存在"),
	/**
	 * 所有无法识别的异常默认的返回状态码
	 * 根据阿里java开发手册泰山版的错误码原则
	 * 属于错误来源于当前系统，前缀用B
	 */
	SERVER_INNER_ERROR("B0001", "系统执行出错"),
	/**
	 * 所有调用第三方API出错默认的返回状态码
	 * 根据阿里java开发手册泰山版的错误码原则
	 * 属于错误来源于第三方系统，前缀用C
	 */
	CALL_THIRD_PARTY_ERROR("C0001", "调用第三方服务出错");

   private String code;
   private String message;

   @Override
   public String toString() {
       return this.name();
   }

	@Override
	public String getCode() {
		return this.code;
	}
	
	@Override
	public String getMessage() {
		return this.message;
	}
}
